Natural language processing (NLP) is used in many different applications where a user interacts with a machine via speech (i.e. by issuing one or more spoken commands). An example of such an application includes voice-activated control systems for various kinds of devices such as smartphones, televisions, household appliances, and the like. Automated assistance at call centers and switch boards, provide another example of application for NLP. The NLP application receives user-generated speech as input, converts the speech into text, and then determines the part of the received text that includes commands or operations that the user would like to have executed, and then accordingly generates machine-executable instructions.
Improving the performance of the NLP application depends on improving the accuracy and efficiency of processing the user-generated speech and the text derived therefrom. The received user-generated text is tagged with features or tags to help determine the meaning and commands embedded in the text. The tags or features are generated by using some large body of text (“text corpus”) in which each word has been manually assigned with features. In order to improve accuracy of the NLPA, the size of the tagged text corpus is increased. This is very resource intensive, and cannot be done quickly or easily.
There is therefore a need for improving the ability to process user-generated speech more efficiently and less resource intensively.